1. Field of the Invention
This invention is in the field of content data distribution networks, especially broadcast of digital audio and video data. The invention automates the remapping of transport streams received in a first format into a second format, as is executed at a cable TV system head end. In particular, the invention relates to automated accomodation of transmittal format changes, including mapping changes.
2. Related Art
For digital video, audio and data content, most distribution systems commonly work according to common familiar concepts. Multiple content data streams are divided into packets, multiplexed, transmitted, demultiplexed and routed for use to various end user displays. The MPEG2 protocols are illustrative of the class, and characteristic of the embodiments discussed herein. Other protocols such as MPEG1 or DSS are alike in function although they vary in detail.
The Moving Picture Experts Group (MPEG) is the expert group of the International Organization for Standardization (ISO) that has defined the MPEG-2 standard (ISO/IEC 13818), which is incorporated by reference herein. This MPEG-2 standard protocol defines one protocol that can be used to encode, multiplex, transmit and de-multiplex and decode video, audio and data bitstreams.
Video compression is an important part of the MPEG standards. Additionally, MPEG-2 includes a family of standards involving different aspects of digital video and audio transmission and representation. The general MPEG-2 standard is currently divided into eight parts, including systems, video, audio, compliance, software simulation, digital storage media, real-time interface for system decoders, and DSM reference script format.
The video portion of the MPEG-2 standard (ISO/IEC 13818-2) sets forth the manner in which pictures and frames are defined, how video data is compressed, various syntax elements, the video decoding process, and other information related to the format of a coded video bitstream. The audio portion of the MPEG-2 standard (ISO/IEC 13818-3) similarly describes the audio compression and coding techniques utilized in MPEG-2. The video and audio portions of the MPEG-2 standard therefore define the protocol with which audio or video information is represented.
At some point, the video, audio, and other digital information must be multiplexed together to provide encoded bitstreams for delivery to the target destination. The Systems portion of the MPEG-2 standard (ISO/IEC 13818-1) defines how these bitstreams are synchronized and multiplexed together. It does not specify the encoding method. Instead, it defines only the resulting bit stream. Typically, video and audio data are encoded at respective video and audio encoders, and the resulting encoded video and audio data is input to an MPEG-2 Systems encoder/multiplexer. This Systems multiplexer can also receive other inputs, including control and management information such as authorization identifiers, private data bitstreams, and time stamp information. The resulting coded, multiplexed signal is referred to as the MPEG-2 transport stream. Generally, a data transport stream is also the format in which digital information is delivered via a network to a receiver for display.
The video and audio encoders provide encoded information to the Systems multiplexer in the form of an “elementary stream”. These elementary streams are “packetized” into packetized elementary streams which are comprised of many packets. Each packet includes a packet payload corresponding to the content data to be sent within the packet, and a packet header that includes information relating to the type, size, and other characteristics of the packet payload.
Elementary stream packets from the video and audio encoders are mapped into transport stream packets at the Systems encoder/multiplexor. The transport packets differ from the elementary stream packets in that transport stream packets are a uniform size; 188 bytes. Each transport stream packet includes a payload portion which corresponds to a portion of the elementary packet stream, and further includes a transport stream packet header. The transport stream packet header provides information used to transport and deliver the information stream, as compared to the elementary stream packet headers that provide information directly related to the elementary stream.
Each transport packet header includes a packet identifier (PID) to identify the elementary stream to which the packet belongs. The PID is a 13-bit field that identifies the transport packet, and defines the type of payload in the transport packet payload.
Each transport stream typically transports multiple programs for display. Programs are comprised of the coordinated display of a video elementary bitstream of data, one or two audio steams of data, and sometimes a data stream for closed captioning, weather, stock or other information. The transport stream is a multiplex containing each of these different packetized elementary streams for each of the plurality of programs being transported. A typical MPEG2 transport stream carries on the order of 250 elementary streams, which may correspond to approximately 100 programs.
When the various packetized streams are de-multiplexed, the elementary stream packets must be organized so that all packets corresponding to a common program are output as coherent content. Tables are used to do this. The tables are sent as separate packets in the transport stream. They have their own PIDs that are different than the content data PIDs. They are called Program Association Tables and Program Map Tables.
A program of content data may be, for example, movies aired by HBO, news aired by NBC, or a sporting event aired on pay-per-view. Usually, each program is a synchronized composite of a video elementary stream and two audio elementary streams. Each elementary stream is identified with a unique PID. All the packets in that elementary stream contain the same PID in their headers. Separately, each program is assigned a number, which is referred to as a program number. A program numbers are allotted a 16 bit field in the program association section of an MPEG2 transport stream, see ISO/IEC 31818-1; § 2.4.4.3. Although this enables as many as 8,000 different program numbers, in practice, for reasons both technical and human, often just numbers between 1 and 500 are used by content providers to designate programs. Although program numbers may be made to correspond to a “channel” number seen by an end user on her television, usually the programs numbers are arbitrary. Significantly, program numbers can be and often are changed. The changes are also often arbitrary and frequently unannounced, as will be discussed below.
Program Association Tables assign the proper elementary streams to the programs they represent. The Program Association Table (PAT) is a simple two column table listing the program numbers and next to each a PID for a Program Map Table (PMT) that is unique to that program. Program Association Tables are transmitted periodically in the transport stream for access by de-coders. Program Association Tables are always PID 0, and they are one of the first items referenced by a decoder when it powers up. The decoder uses the PAT to look up a PID for the PMT of the program that has been selected by a viewer. The decoder isolates that PID in the transport stream and reads the PMT from the data payload portion of the packet. Within each Program Map Table is the listing of the PIDs of the elementary streams that together comprise that program. The decoder then isolates the packets identified by the proper PIDs and routes them to a TV for display.
For example, if ABC programming has been assigned program number 22, “Survivor” and “Monday Night Football” will be transmitted under that number in the Program Association Table. The Program Association Table will list the PID of the Program Map Table that is unique to that programming. Within that Program Map Table will be listed the video elementary stream 101 (for example), audio stream 151 and audio stream 152 and, perhaps, data stream 73 for closed captioning. As the transport stream continues to be received, packets with those PIDs are routed for display, until a viewer selects a different program.
The Data Transport Stream
FIGS. 1 through 5 illustrate the make up of an MPEG data transport stream. FIG. 1 graphically depicts one transport packet. It is divided into a 4 byte header and a 184 byte payload. The payload is depicted as a variable amount of data bytes and a variable amount of adaptation bytes called “stuffing” bytes, which are more fully described below.
The header carries information necessary for proper reading and routing of the payload data. Among this information, whose nature and purpose are known, is the PID, or packet identifier. Each part of the header is routinely isolated and routed from the transport stream for processing at various stages of the data distribution. Insofar as is relevant to the present invention, PIDs are acted upon at a low, routine level by packet processors.
PATs and PMTs are carried as payloads. They are found, isolated and routed according to their PIDs. PATs are always PID 0. PMT PIDs are assigned in the PATs.
FIG. 2 illustrates relevant portions of the MPEG syntax for a PAT. FIG. 4 is a detail of a packet payload comprising a PAT. The PAT is transmitted in up to 256 sections. This information from these sections is combined to crate the whole PAT. Each section has the structure shown in FIG. 4. The table id is a value of 00H, which indicates that this is a PAT section. The CRC32 field is a checksum which shows whether there is an error in the section. The useful PAT information is contained in the N loop area. This is a series of repeated fields which recites the PNs and their PIDs. As can be seen, a 16 bit field is used to assign a program number. The PAT further associates the assigned program number with a PMT by assigning a PID for the packet containing the PMT.
FIG. 3 illustrates relevant portions of the MPEG syntax for a PMT. FIG. 5 is a detail of a packet payload comprising a PMT. As can be seen, another 16 bit field is used to record the program number associated with the particular PMT. The PMT further assigns PIDs of the elementary streams comprising the programming for the associated program number, the elementary stream PIDs being in another 13 bit field. The table id has a value of 02H, which indicates that it is a PMT. The N-loop-descriptors area which follows program-info-length, contains various optional technical information about the program. The N-loop area contains a repeated group of fields, each of which gives the PID of an Elementary Stream (ES) of the Program. The PMT identifies the type and PID number of each ES for the program.
Looking at the entry detail shown for one elementary stream, we find an 8-bit field for stream type. For example, a value of 01H indicates video, while 04H indicates audio encoded according to ISO 13818-3 compression. The 13-bit PID locates the elementary stream data. The 12-bit elementary stream-info-length field gives us the total length of the following N-loop-descriptors. These descriptors give various optional technical information about the elementary system. The data for a single program number is not usually allowed to span multiple sections.
Like any digital data, MPEG transport streams may be modulated for transmission in a wide variety of means. Quadratic Amplitude Modulation is common. RF carrier frequencies over the air and/or through cables are used. The transport modes used include satellite transmission, traditional over the air broadcasting by land antennas, cable or fiber optic networks or the Internet. A variety of programming content data providers send content data including satellite transmission distributors and traditional over the air broadcasters.
Satellite transmission RF carrier frequencies are allocated in channels with a preconfigured capacity or bandwidth. A standard channel bandwidth is 19.3 Mb/s, which transmits one MPEG transport stream. Any given satellite may transmit on the order of 30 channels and transport streams.
Cable systems, usually limited to distribution in a certain geographic portion of a metropolitan area, typically use an output RF carrier with a capacity of 38.8 Mb/s or 26.97 Mb/s, depending on whether it uses 256 QAM or 64 QAM. Multiple outputs are common. What is output over these cable systems is also an MPEG transport stream.
The hardware at cable system head ends is typically capable of and configured to receive transport streams from multiple sources simultaneously. These would likely include satellite transmission input, over the air broadcasting and perhaps Internet or other network inputs. They may be input as Asynchronous Serial Interfaces or not. Each cable system requires control of the designation of program numbers for the programming that it distributes in its output transport streams.
There is no coordination of program number designations among the various providers of content data transport streams. Received program numbers usually do not match program numbers assigned by cable systems, and often conflict with the program numbers of other providers as well. This requires at least a check and most often a reconfiguration of the program numbers received by a cable system head end before retransmission over the cable system. This process is called mapping or re-mapping. It involves checking the Program Association Tables in the input transport streams and changing those PATs and their associated PMTs for the output streams. This has heretofor been a manual task, executed by a human operator.
Even more problematic is the fact that individual providers of content data often change their transmission formatting. For a variety of reasons, coordination between providers and cable systems has been historically poor with regard to scheduling or even notice of provider formatting changes. The operators of cable system head ends must remap program numbers due to provider format changes on a regular basis, often with little or no notice. The consequence of tardy remapping is the disappearance of certain programming from view, until the necessary remapping is done.
Provider format changes are made according to provider decisions about what programming to provide at what times, and also about how best to fit that programming in the bandwidth available to them. The situation is best illustrated in light of recently available High Definition (HD) television data streams. Such elementary streams may consume most or all of a transport stream and channel's bandwidth. A single provider may change from filling a particular 19.3 Mb/s channel with one 18 Mb/s HD stream, to truncating the HD signal to 12 Mb/s and adding a Standard Definition (SD) data stream and a 1.5 Mb/s weather radar image, or change again to six SD data streams and no HD stream. This frequently happens in a single day. If these changes change the program numbers, or if the same streams keep their program numbers but arrive on different channels, again remapping must occur. Again, the consequence of tardy remapping is the disappearance of certain programming from view, until the necessary remapping is done.
There is a need in the art for automatic remapping that is rapidly responsive to such format changes, especially unannounced changes.
Two increasingly important technologies further exacerbate a need for automated and “intelligent” remapping. The first has been mentioned; multiple HD signals often will not fit in a single transport stream output onto the cable system. There is a need in the art for automatic remapping that accommodates HD TV. The second is statistical multiplexing.
Statistical multiplexing is a known technique that is particularly suited to MPEG transport stream multiplexing because it allows for transmission of elementary streams having varying data bitrates. In digital video in general and MPEG in particular, a series of video frames showing little or no movement requires a low overall data bit rate, because the pixels are not changing. A portion of video with a great deal of movement, such as a panning shot or action sequence for example, requires a great deal of data to be transmitted. Statistical multiplexing is a technique to accommodate this variability of data flow and still maintain the uniform overall data flow rate necessary for smooth transmission of all the multiplexed elementary streams through buffers and other hardware.
Statistical multiplexing uses known or calculated average bit rates and maximum bit rates to populate a transport stream with an appropriate number of elementary streams. Constant data flow is achieved by filling underutilized packets with fixed bytes called “stuffing bytes.” Packets representing a relatively still video sequence contain less that the allotted 184 video data bytes. Therefore it is filled out with the stuffing bytes, which are ignored by receiving display hardware. When one program shows a large amount of movement, its elementary stream reaches a peak bit rate. The buffering hardware at a statistical multiplex uses buffer space that is available due to the deletion of stuffing bytes in other elementary streams, and thereby handles the peak data flow of the high demand stream.
When all the programming elementary streams reach peak rates at once, however, the available capacity may be overwhelmed and data may be lost or degraded. This is called “oversubscribing.” Oversubscription response techniques include transfer of an elementary stream to another channel, and transcoding, which selectively deletes some data to maintain throughput of sufficient data.
Incoming transport streams have been managed by their providers to occupy a transport stream with an appropriate number of elementary streams to optimize bandwidth use while minimizing the risk of over subscription. Remapping at a cable system head end must likewise manage the statistical multiplexing of output transport streams. Routing too many high demand elementary streams onto the same transport stream should be avoided. This too is currently done manually. An automated remapper adapted for use with statistical multiplexing is also needed.